package com.hysf.dao.impl;

import com.hysf.dao.BaseDao;
import com.hysf.dao.ProductDao;
import com.hysf.entity.Product;

import java.util.List;

public class ProductDaoImpl extends BaseDao implements ProductDao {

    /**
     *
     * @Description:
     *
     * @Author: 石涛
     * @Date: 2024/4/9 10:51
     **/
    @Override
    public List<Product> findAll() {
        String sql = "SELECT * FROM product";
        // 调用 queryByList 方法，并传入 Product.class 作为类型参数
        return queryByList(Product.class,sql,new Object[]{});
    }
    /**
     *
     * @Description:
     *
     * @Author: 石涛
     * @Date: 2024/4/9 10:51
     **/
    @Override
    public List<Product> hotfind() {
        String sql = "SELECT * FROM product WHERE is_hot = ? LIMIT 9"; // 假设表名是product
        Object[] params = {1}; // is_hot字段的值是1
        return queryByList(Product.class, sql, params);
    }
    /**
     *
     * @Description:
     *
     * @Author: 石涛
     * @Date: 2024/4/9 10:51
     **/
    @Override
    public List<Product> newfind() {
        String sql = "SELECT * FROM product ORDER BY pdate DESC LIMIT 4"; // 假设表名是product，按pdate降序排序，取前4条
        // 因为没有使用占位符，所以不需要params数组
        return queryByList(Product.class, sql);
    }
    /**
     *
     * @Description:
     *
     * @Author: 石涛
     * @Date: 2024/4/9 10:51
     **/
    @Override
    public List<Product> newshow(String pid) {
        // 构造SQL语句，使用占位符?来代表pid的值
        String sql = "SELECT * FROM product WHERE pid = ? ";
        // 创建一个包含pid值的Object数组，用于传递给queryByList方法
        Object[] params = new Object[]{pid};
        // 调用queryByList方法，并传入Product.class作为类型参数，以及SQL语句和参数数组
        return queryByList(Product.class, sql, params);
    }
    /**
     *
     * @Description:
     *
     * @Author: 石涛
     * @Date: 2024/4/9 10:51
     **/
    @Override
    public List<Product> cshow(String cid) {
        // 构造SQL语句，使用占位符?来代表pid的值
        String sql = "SELECT * FROM product WHERE cid = ? ";
        // 创建一个包含pid值的Object数组，用于传递给queryByList方法
        Object[] params = new Object[]{cid};
        // 调用queryByList方法，并传入Product.class作为类型参数，以及SQL语句和参数数组
        return queryByList(Product.class, sql, params);
    }
}
